home *** CD-ROM | disk | FTP | other *** search
/ Logiciels PC 18 / LOGICIELSPC_18.ISO / Accuses / MAJ / Rtf2Html / Source C / LIB / RTFHTML.C < prev    next >
C/C++ Source or Header  |  1999-06-27  |  2KB  |  95 lines

  1.  
  2. /*
  3.  * %%File: rtfhtml.c
  4.  *  
  5.  * Copyright (c) 1995-1999 Bertrand LE QUELLEC
  6.  *
  7.  * http://perso.wanadoo.fr/blq
  8.  * blq@wanadoo.fr
  9.  */
  10.      
  11.      
  12. #include <stdio.h>
  13.  
  14. #ifndef UNIX_SRC
  15. #include <string.h>
  16. #endif
  17.                
  18. #include "html.h"
  19. #include "rtftype.h"
  20. #include "rtfdecl.h"
  21. #include "rtfreadr.h"
  22. #include "rtfchar.h"
  23.  
  24. #define SOURCE_RTFHTML 1
  25. #include "rtfhtml.h"
  26.  
  27.  
  28.  
  29. /* 
  30.  * %%Function: HexaToHtmlOrTxt.
  31.  *
  32.  * Determine le caractere RTF et le transcrit en caractere HTML ou a
  33.  * defaut en caractere TXT et l'envoie en sortie via la fonction
  34.  * ecPrintChar()
  35.  */
  36. int HexaToHtmlOrTxt(char * code, int param, bool fParam)
  37. {
  38.     char TabHexa[10];
  39.     char * tok = (char *)0;
  40.     int i = 0;
  41.  
  42.  
  43.     if(fParam == fFalse)
  44.         sprintf(TabHexa, "%c%c", code[1], param);
  45.     else
  46.         sprintf(TabHexa, "%c%d", code[1], param);
  47.  
  48.     if((tok = HexaToHTML(TabHexa))) 
  49.     {
  50.         modeSpecial = 1;
  51.  
  52.         for(i = 0; i < (int)strlen(tok); i++)
  53.         {
  54.             if(ecPrintChar((int)tok[i]) != ecOK)
  55.                 return ecNO;
  56.         }
  57.  
  58.         modeSpecial = 0;
  59.  
  60.         return ecOK;
  61.     }
  62.     else
  63.         return ecPrintChar(chHexaToAscii(TabHexa));
  64. }
  65.  
  66.  
  67. /* 
  68.  * %%Function: HexaToHtmlToHexa.
  69.  *
  70.  * Determine le caractere RTF et le transcrit en caractere HTML
  71.  * pour le retranscrire en RTF, et l'envoie a en sortie via la
  72.  * fonction ecPrintChar()
  73.  *
  74.  * Cette operation permet d'utiliser les tables de correspondance
  75.  * HEXA/HTML qui prennent en compte les codes HEXA du Mac, ou les
  76.  * anciens codes HEXA utilises par des versions anterieures a Word 6.0
  77.  */
  78. int HexaToHtmlToHexa(char * code, int param, bool fParam)
  79. {
  80.     char TabHexa[10];
  81.     int valHexa = 0;
  82.  
  83.  
  84.     if(fParam == fFalse)
  85.         sprintf(TabHexa, "%c%c", code[1], param);
  86.     else
  87.         sprintf(TabHexa, "%c%d", code[1], param);
  88.  
  89.     if((valHexa = chHexaToAscii(HTMLToHexa(HexaToHTML(TabHexa)))) != ecNO)
  90.         return ecPrintChar(valHexa);
  91.     else
  92.         return ecPrintChar(chHexaToAscii(TabHexa));
  93. }
  94.  
  95.